package com.xiaojiezhu.netty.base.demo.answer;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;

/**
 * 作者 zxj<br>
 * 时间 2017/7/14 11:17
 * 说明 应答服务器
 */
public class AnswerServerHandler extends ChannelInboundHandlerAdapter {
    /**
     * 收到消息
     * @param ctx
     * @param msg
     * @throws Exception
     */
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        ctx.write(msg); //这里并没有释放这个消息，是因为写入的时候已经自动释放了。并且这个消息写入的时候并不会发送，因为被缓存到内部了，需要flush才会发送
        ctx.flush();

        //ctx.writeAndFlush(msg);  //二合一的方法
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        cause.printStackTrace();
        ctx.close();
    }
}
